
#include <bits/stdc++.h>
using namespace std;


 
class Solution
{
    public:
    vector <long long> stl(long long arr[], int n)
    {
        vector <long long> left;
        stack <pair<long long,long long>> s;
        for(int i=0;i<n;i++)
        {
            if(s.size()==0)
            {
                left.push_back(-1);
            }
            else if(s.size()>0 && s.top().first<arr[i])
            {
                left.push_back(s.top().second);
            }
            else if(s.size()>0 && s.top().first>=arr[i])
            {
                while(s.size()>0 && s.top().first>=arr[i])
                {
                    s.pop();
                }
                if(s.size()==0)
                {
                    left.push_back(-1);
                }
                else 
                {
                    left.push_back(s.top().second);
                }
            }
            s.push({arr[i],i});
        }
        return left;
    }
    vector <long long> str(long long arr[], int n)
    {
        vector<long long> right;
        stack <pair<long long, long long>> p;
        for(int i=n-1;i>=0;i--)
        {
            if(p.size()==0)
            {
                right.push_back(n);
            }
            else if(p.size()>0 && p.top().first<arr[i])
            {
                right.push_back(p.top().second);
            }
            else if(p.size()>0 && p.top().first>=arr[i])
            {
                while(p.size()>0 && p.top().first>=arr[i])
                {
                    p.pop();
                }
                if(p.size()==0)
                {
                    right.push_back(n);
                }
                else if(p.size()>0 && p.top().first<arr[i])
                {
                    right.push_back(p.top().second);
                }
            }
            p.push({arr[i],i});
        }
        reverse (right.begin(),right.end());
        return right;
    }
    long long getMaxArea(long long arr[], int n)
    {
        long long maxi;
        vector <long long> left= stl(arr,n);
        vector <long long> right=str(arr,n);
        for(int i=0;i<n;i++)
        {
            long long l=arr[i];
            long long b=right[i]-left[i]-1;
            long long area= l*b;
            maxi=max(maxi,area);
        }
        return maxi;
    }
};




int main()
 {
    long long t;

    cin>>t;
    while(t--)
    {
        int n;
        cin>>n;
        
        long long arr[n];
        for(int i=0;i<n;i++)
            cin>>arr[i];
        Solution ob;
        cout<<ob.getMaxArea(arr, n)<<endl;
    
    }
	return 0;
}
  